package cn.itcast.dao;

import cn.itcast.pojo.Permission;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Set;

public interface PermissionDao {

    /**
     * 找到所有的权限
     *
     * @return {@link List<Permission>}
     * @param queryString 查询条件
     */
    Page<Permission> findAllPermissionsByCondition(String queryString);

    /**
     * 添加权限
     *
     * @param permission 权限
     * @return {@link Integer}
     */
    Integer addPermission(Permission permission);

    /**
     * 更新权限
     *
     * @param permission 权限
     * @return {@link Integer}
     */
    Integer updatePermission(Permission permission);

    /**
     * 查询权限属性
     *
     * @param id id
     * @return {@link Permission}
     */
    Permission findPermissionById(Integer id);

    /**
     * 通过id删除权限
     *
     * @param id id
     * @return boolean
     */
    Integer deletePermissionById(Integer id);

    /**
     * 找到所有的权限
     *
     * @return {@link List<Permission>}
     */
    List<Permission> findAllPermission();

    /**
     * 找到菜单数由权限id
     *
     * @param id id
     * @return {@link Integer}
     */
    Integer findMenuCountByPermissionById(Integer id);

    /**
     * 找到数的角色权限的id
     *
     * @param id id
     * @return {@link Integer}
     */
    Integer findRoleCountByPermissionById(Integer id);
}
